package com.finalterm.product.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.finalterm.product.dto.ProductCreateDTO;
import com.finalterm.product.dto.StockDeductDTO;
import com.finalterm.product.vo.ProductVO;

/**
 * 商品服务接口
 */
public interface ProductService {
    
    /**
     * 创建商品
     */
    ProductVO createProduct(ProductCreateDTO createDTO);
    
    /**
     * 获取商品详情
     */
    ProductVO getProductDetail(Long productId, Long userId);
    
    /**
     * 分页查询商品列表
     */
    Page<ProductVO> getProductList(int page, int size, String category);
    
    /**
     * 扣减库存
     */
    boolean deductStock(StockDeductDTO deductDTO);
    
    /**
     * 恢复库存
     */
    boolean recoverStock(Long productId, Integer quantity, String orderId);

    /**
     * 确认库存扣减
     */
    boolean confirmStockDeduction(String orderNo, Long productId, Integer quantity, String orderStatus);

    /**
     * 更新商品信息
     */
    ProductVO updateProduct(Long productId, ProductCreateDTO updateDTO);

    /**
     * 删除商品
     */
    boolean deleteProduct(Long productId);
}
